package com.wzh.auth.service;

import com.wzh.auth.domain.dto.AuthLoginDTO;
import com.wzh.auth.domain.dto.LoginDTO;
import com.wzh.user.api.dto.SysUserDTO;

/**
 * <p>
 * 认证服务接口，定义用户认证相关的业务逻辑方法
 * </p>
 *
 * @author 山归岿
 * @create 2025-06-15-19:42
 */
public interface AuthService {

    /**
     * 用户登录
     *
     * @param authLoginVO 登录参数
     * @return 登录信息
     */
    LoginDTO login(AuthLoginDTO authLoginVO);

    /**
     * 通过用户名查询用户
     *
     * @param username 用户名
     * @return 用户信息
     */
    SysUserDTO getByUsername(String username);

    /**
     * 获取当前登录用户信息
     *
     * @return 用户信息
     */
    SysUserDTO getCurrentUser();

    /**
     * 退出登录
     */
    void logout();

    /**
     * 修改密码
     *
     * @param oldPassword 旧密码
     * @param newPassword 新密码
     */
    void updatePassword(String oldPassword, String newPassword);

    /**
     * 重置密码
     *
     * @param userId 用户ID
     */
    void resetPassword(Long userId);
}